/*
 * VakjePanel.java
 *
 * Created on 9 maart 2008, 15:01
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */
package client.gui.controls.scrabble;

import java.awt.BorderLayout;
import java.awt.Point;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 *
 * @author Administrator
 */
public class Hokje extends JPanel {

    //Deze klasse stelt een vakje op het spelbord voor, maar er is meer.
    //Deze klasse is ook een container voor ofwel een Vakje, ofwel een Blokje
    //Het field 'vakjeOfBlokje' bevat het zichtbare vakje of blokje (dit is dus een soort toggle veld)
    //Het field vakje bevat het vakje dat altijd bij deze container zal horen (bv 2X letter waarde)
    private JLabel vakjeOfBlokje;
    private Vakje vakje;
    private Point mpLocatie;

    /** Creates a new instance of VakjePanel */
    public Hokje(Vakje.Type eType,Point pLocatie) {
        this.setLayout(new BorderLayout());
        
        Vakje vakje = new Vakje(eType);
        setVakjeOfBlokje(vakje);
        setLocatie(pLocatie);
        setVakje(vakje);
    }
    
    public Hokje(){
        this.setLayout(new BorderLayout());
        Vakje vakje = new Vakje(Vakje.Type.NORMAAL);
        setVakjeOfBlokje(vakje);
        setVakje(vakje);
    }

    public JLabel getVakjeOfBlokje() {
        if(vakjeOfBlokje==null){
            return null;
        }else{
            return vakjeOfBlokje;
        }
    }

    public void setVakjeOfBlokje(JLabel vakjeOfBlokje) {
        this.vakjeOfBlokje = vakjeOfBlokje;
        //Alle componenten verwijderen en enkel het vakje of blokje dat meegegeven werd
        //toevoegen op het spelbord
        this.removeAll();
        this.add(getVakjeOfBlokje());
        this.repaint();
    }

    public Vakje getVakje() {
        return vakje;
    }

    public void setVakje(Vakje vakje) {
        this.vakje = vakje;
    }

    public Point getLocatie() {
        return mpLocatie;
    }

    public void setLocatie(Point pLocatie) {
        this.mpLocatie = pLocatie;
    }
}
